package com.itheima.thread.卖票案例;

public class Ticket implements Runnable {

    private  int ticket = 100;  //临界资源
    @Override
    public void run() {
        while (true){
            //注意： 锁对象要唯一，通常我们会使用字符串常量，因为字符串常量在常量池中是唯一的
            // 默认情况下，锁是打开的
            // 当有任意线程进入后，锁会自动关闭
            // 只有进入的线程将同步代码块中的内容执行完毕了，锁才会重新打开
            synchronized ("abc"){
                if (ticket <= 0){
                    break;
                }else {
                    ticket--;
                    try {
                        Thread.sleep(10);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    System.out.println(Thread.currentThread().getName() + "正在卖票,还剩" + ticket + "张");
                }
            }
        }
    }
}
